编译 Qt 源码,没有生成 libqxcb.so 的问题
Qt 通过不同的插件,在不同的平台上进行显示,例如:
libqlinuxfb.so用于 Frame Bufferlibqxcb.so用于 X11libqwayland-generic.so用于 Wayland
构建 X11 插件需要依赖许多 xcb 的开发包,可以通过下面的命令安装:
Qt 5.15.2:
1sudo apt install libfontconfig1-dev \
2 libfreetype6-dev \
3 libx11-dev \
4 libx11-xcb-dev \
5 libxext-dev \
6 libxfixes-dev \
7 libxi-dev \
8 libxrender-dev \
9 libxcb1-dev \
10 libxcb-glx0-dev \
11 libxcb-keysyms1-dev \
12 libxcb-image0-dev \
13 libxcb-shm0-dev \
14 libxcb-icccm4-dev \
15 libxcb-sync0-dev \
16 libxcb-xfixes0-dev \
17 libxcb-shape0-dev \
18 libxcb-randr0-dev \
19 libxcb-render-util0-dev \
20 libxcb-xinerama0-dev \
21 libxkbcommon-dev \
22 libxkbcommon-x11-devQt 6.5:
1sudo apt install libfontconfig1-dev \
2 libfreetype6-dev \
3 libx11-dev \
4 libx11-xcb-dev \
5 libxext-dev \
6 libxfixes-dev \
7 libxi-dev \
8 libxrender-dev \
9 libxcb1-dev \
10 libxcb-cursor-dev \
11 libxcb-glx0-dev \
12 libxcb-keysyms1-dev \
13 libxcb-image0-dev \
14 libxcb-shm0-dev \
15 libxcb-icccm4-dev \
16 libxcb-sync-dev \
17 libxcb-xfixes0-dev \
18 libxcb-shape0-dev \
19 libxcb-randr0-dev \
20 libxcb-render-util0-dev \
21 libxcb-util-dev \
22 libxcb-xinerama0-dev \
23 libxcb-xkb-dev \
24 libxkbcommon-dev \
25 libxkbcommon-x11-dev安装后重新构建即可:
1rm config.cache
2./configure -nomake examples -prefix /opt/qt-6.5.2 -opensource -confirm-license -release -xcb
3make
4make install单独编译某个模块的命令为:
1make module-qtbase # 单独编译 qtbase
2make module-qtbase-install_subtargets # 单独安装 qtbase另外,如果需要 OpenGL 的话,可以安装以下包:
1sudo apt install libgl1-mesa-dev \
2 libglu1-mesa-dev \
3 libx11-dev如果不需要 OpenGL 的话,在 configure 步骤添加
-no-opengl选项即可。
如果需要使用 SSL 的话,可以安装以下包:
1sudo apt install libssl-dev \
2 openssl如果不需要 OpenGL 的话,在 configure 步骤添加
-no-ssl选项即可。
缓存问题:
执行过 configure 之后再安装依赖,再次执行 configure 仍会提示缺少依赖,可以删除 config.cache 来解决。
查找路径问题:
执行 configure 时可以使用 -I 和 -L 选项添加查找路径。
参考: